home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung / Power-Programmierung (Tewi)(1994).iso / magazine / msysjour / vol05 / 05 / wintro2 / stock.h < prev    next >
Text File  |  1990-09-01  |  5KB  |  175 lines

  1. /*========================================================*/
  2. /*                                                        */
  3. /* File    : STOCK.H                                      */
  4. /*                                                        */
  5. /* Purpose :                                              */
  6. /*                                                        */
  7. /* History :                                              */
  8. /*                                                        */
  9. /*========================================================*/
  10.  
  11.  
  12. extern HANDLE hThisInstance;  /* Program instance handle */
  13. extern HWND hWndMain;         /* Handle to main window   */
  14. extern HWND hwndMDIClient;    /* Handle to MDI client    */
  15. extern HWND hWndActive;
  16. extern HANDLE hCurrStockInfo;
  17.  
  18. #define CBWNDEXTRA          sizeof(HANDLE)
  19.  
  20.  
  21. /*
  22.   Stock information
  23. */
  24.  
  25. #define MAXSTOCKNAME     4
  26. #define MAXDESCRIPTION   32
  27.  
  28. typedef struct tagDate
  29. {
  30.   BYTE   chMonth;
  31.   BYTE   chDay;
  32.   BYTE   chYear;
  33. } DATE;
  34.  
  35. typedef struct tagPrice
  36. {
  37.   DWORD  dwTotal; /* dollar amt * iDenominator + fractional amount */
  38. } PRICE;
  39.  
  40. typedef struct tagTick
  41. {
  42.   PRICE  price;
  43.   DWORD  dwVolume;
  44.   DATE   date;
  45. } TICK, FAR *LPTICK;
  46.  
  47. /*
  48.   Data structure describing how we draw the graph
  49. */
  50. typedef struct tagGraphInfo
  51. {
  52.   DWORD dwMinPrice;
  53.   DWORD dwMaxPrice;
  54.   DWORD dwScaleFactor;
  55.   DWORD dwTickInterval;
  56.   WORD  iDenominator; /* the fractional amount used for this stock */
  57.   WORD  iGridPen;
  58. } GRAPHINFO, FAR *LPGRAPHINFO;
  59.  
  60.  
  61. typedef struct tagStockFile
  62. {
  63.   DWORD  dwMagic;
  64. #define MAGIC_COOKIE             66666666L
  65.   char   szStock[MAXSTOCKNAME];
  66.   char   szDescription[MAXDESCRIPTION];
  67.   GRAPHINFO graphinfo;
  68.   WORD   nTicks;
  69. /*
  70.   TICK   aTicks[1];
  71. */
  72. } STOCKFILE;
  73.  
  74. typedef struct tagInCoreStockInfo
  75. {
  76.   char      szFileName[14];  /* filename where stock data is kept  */
  77.   STOCKFILE StockFile;       /* a copy of the stock file header    */
  78.   HANDLE    hTicks;
  79.   HWND      hWnd;            /* window which the stock is shown in */
  80.   DWORD     dwFlags;    /* any kind of status bits we need to keep */
  81. #define STATE_HAS_VGRID  1L
  82. #define STATE_HAS_HGRID  2L
  83.   HANDLE    hNextStockInfo;  /* link to next stock info structure  */
  84. } STOCKINFO, FAR *LPSTOCKINFO;
  85.  
  86.  
  87. #define ID_ABOUT            99
  88. #define ID_STOCK            100
  89. #define ID_GRAPH            101
  90.  
  91. #define ID_NEW              101
  92. #define ID_OPEN             102
  93. #define ID_SAVE             103
  94. #define ID_CLOSE            104
  95. #define ID_PRINT            105
  96. #define ID_EXIT             106
  97. #define ID_MAP              107
  98.  
  99. #define ID_TICK_ADD         200
  100. #define ID_TICK_CHANGE      201
  101. #define ID_GRAPH_PRICE      202
  102. #define ID_GRAPH_VOLUME     203
  103. #define ID_GRAPH_ZOOM       204
  104. #define ID_GRAPH_COLORS     205
  105. #define ID_GRAPH_OPTIONS    199
  106. #define ID_GRAPH_GRID_HORZ  206
  107. #define ID_GRAPH_GRID_VERT  207
  108. #define ID_WINDOW_TILE      208
  109. #define ID_WINDOW_CASCADE   209
  110. #define ID_WINDOW_ICONS     210
  111. #define ID_WINDOW_CLOSEALL  211
  112. #define ID_WINDOW_CHILDREN  220
  113.  
  114. #define ID_TICK_DATE        100
  115. #define ID_TICK_PRICE       101
  116. #define ID_TICK_VOLUME      102
  117.  
  118.  
  119. #define ID_RECTTEXT   120
  120. #define ID_VXEXT      109
  121. #define ID_VXORG      107
  122. #define ID_VYEXT      111
  123. #define ID_VYORG      113
  124. #define ID_WXEXT      103
  125. #define ID_WXORG      101
  126. #define ID_WYEXT      105
  127. #define ID_WYORG      115
  128.  
  129. #define IDC_FILENAME  400
  130. #define IDC_EDIT      401
  131. #define IDC_FILES     402
  132. #define IDC_PATH      403
  133. #define IDC_LISTBOX   404
  134.  
  135.  
  136. /*
  137.   Stuff for graph dialog box
  138. */
  139. #define ID_SYMBOL     300
  140. #define ID_MINPRICE   301
  141. #define ID_MAXPRICE   302
  142. #define ID_FACTOR     303
  143. #define ID_TICKINT    304
  144. #define ID_HORZGRID   305
  145. #define ID_VERTGRID   306
  146. #define ID_GRIDSTYLE  307
  147. #define ID_HELP       308
  148. #define ID_DENOMINATOR 309
  149.  
  150.  
  151.  
  152. int NEAR PASCAL WinMain(HANDLE, HANDLE, LPSTR, int);
  153. BOOL FAR PASCAL InitializeApplication(VOID);
  154. BOOL FAR PASCAL InitializeInstance(LPSTR lpCmdLine, WORD nCmdShow);
  155. LONG FAR PASCAL MainWndProc(HWND, WORD, WORD, LONG);
  156. LONG FAR PASCAL StatusWndProc(HWND, WORD, WORD, LONG);
  157. LONG FAR PASCAL GraphWndProc(HWND, WORD, WORD, LONG);
  158. BOOL FAR PASCAL AboutDlgProc(HWND, WORD, WORD, LONG);
  159. BOOL FAR PASCAL MapDlgProc(HWND, WORD, WORD, LONG);
  160. BOOL FAR PASCAL AddTickDlgProc(HWND, WORD, WORD, LONG);
  161. BOOL FAR PASCAL GraphInfoDlgProc(HWND, WORD, WORD, LONG);
  162. VOID MainPaint(HWND, HDC);
  163. int PASCAL StockFileRead(LPSTR szFileName);
  164. HWND PASCAL GraphCreateWindow(LPSTR lpName);
  165. int PASCAL GraphWndPaint(HWND hWnd,HDC hDC,LPSTOCKINFO lpStockInfo);
  166.  
  167. /* FILEOPEN.C */
  168. HANDLE FAR PASCAL OpenDlg(HWND, unsigned, WORD, LONG);
  169. void SeparateFile(HWND, LPSTR, LPSTR, LPSTR);
  170. void UpdateListBox(HWND);
  171. void AddExt(PSTR, PSTR);
  172. void ChangeDefExt(PSTR, PSTR);
  173.  
  174.  
  175.